package cn.itsource.exception2;

/**
 * 测试自定义异常
 */
public class NameRepeatExceptionTest {

	public static void main(String[] args) {
		//非运行是异常，要么try,要么向外抛出处理
		//模拟用户注册功能
		try {
			//模拟注册一个用户
			boolean register = register("涛涛老师");
			if (register) {
				System.out.println("注册成功！");
			}
		} catch (NameRepeatException e) {
			System.out.println("注册失败！");
			e.printStackTrace();
		}
		
		try {
			//模拟注册一个用户
			boolean register = register("翔翔");
			if (register) {
				System.out.println("注册成功！");
			}
		} catch (NameRepeatException e) {
			System.out.println("注册失败！");
			e.printStackTrace();
		}
	}
	
	/**
	 * 用户注册方法
	 * @param name
	 * @return
	 * @throws NameRepeatException 
	 */
	public static boolean register(String name) throws NameRepeatException {
		//非空校验
		if (name == null) {
			return false;
		}
		//模拟数据中查询的用户，放到一个数组中
		String[] names = {"苍苍老师","涛涛老师","杏梨老师","结依老师","小乔老师","鹰鹰老师"};
		
		for (String n : names) {
			//判断是否有用户相同的，如果相同，则抛出一个异常
			if (n.equals(name)) {
				/*
				 * 抛出异常语法：
				 * 	throw new 异常对象(...);
				 * 同时需要在该方法中用throws抛出该异常
				 */
				throw new NameRepeatException("该用户名已被注册，请重新输入！");
			}
		}
		//遍历完毕后，没有抛出异常，说明没有重复的，返回true，表示注册成功
		return true;
	}
}
